home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.OpenProm / RCS / sunromvec.h,v < prev   
Text File  |  1991-01-13  |  21KB  |  516 lines

  1. head     1.2;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.2
  10. date     91.01.13.02.40.45;  author dlong;  state Exp;
  11. branches ;
  12. next     1.1;
  13.  
  14. 1.1
  15. date     91.01.09.21.42.02;  author dlong;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19.  
  20. desc
  21. @initial Sun version
  22. @
  23.  
  24.  
  25. 1.2
  26. log
  27. @changed #ifdef sun4 to #if defined(sun4) && !defined(sun4c),
  28. since we define sun4 and sun4c.
  29. @
  30. text
  31. @/*
  32.  * sunromvec.h
  33.  *
  34.  * @@(#)sunromvec.h 1.19 89/07/12 SMI
  35.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  36.  */
  37.  
  38. #ifndef _mon_sunromvec_h
  39. #define _mon_sunromvec_h
  40.  
  41. #include <sys/types.h>
  42. #include <sys/param.h>
  43.  
  44. #if defined(sun4c) || defined(sun3x)
  45. /*
  46.  * This structure defines a segment of physical memory. To support
  47.  * sparse physical memory, the PROMs construct a list of these structures
  48.  * representing what memory is present. On other machines, the kernel will
  49.  * fake up the physical memory list without this structure.
  50.  */
  51. struct physmemory {
  52.         unsigned int address;
  53.         unsigned int size;
  54.     struct physmemory *next;
  55. };
  56. #endif sun4c || sun3x
  57.  
  58. /*
  59.  * Autoconfig operations
  60.  */
  61. struct config_ops {
  62.     int (*devr_next)(/* int nodeid */);
  63.     int (*devr_child)(/* int nodeid */);
  64.     int (*devr_getproplen)(/* int nodeid; caddr_t name; */);
  65.     int (*devr_getprop)(/* int nodeid; caddr_t name; addr_t value; */);
  66.     int (*devr_setprop)(/* int nodeid; caddr_t name; addr_t value; int len; */);
  67.     int (*devr_nextprop)(/* int nodeid; caddr_t previous; */);
  68. };
  69.  
  70. #ifdef OPENPROMS
  71. #  include <mon/openprom.h>
  72. #else OPENPROMS
  73.  
  74. /*
  75.  * This file defines the entire interface between the ROM 
  76.  * Monitor and the programs (or kernels) that run under it.  
  77.  * 
  78.  * The main Sun-2 and Sun-3 interface consists of
  79.  * the VECTOR TABLE at the front of the Boot PROM.
  80.  * 
  81.  * The main Sun-4 interface consists of (1) the VECTOR TABLE and (2) the 
  82.  * TRAP VECTOR TABLE, near the front of the Boot PROM.  Beginning at address
  83.  * "0x00000000", there is a 4K-byte TRAP TABLE containing 256 16-byte entries.
  84.  * Each 16-byte TRAP TABLE entry contains the executable code associated with
  85.  * that trap.  The initial 128 TRAP TABLE entries are dedicated to hardware
  86.  * traps while, the final 128 TRAP TABLE entries are reserved for programmer-
  87.  * initiated traps.  With a few exceptions, the VECTOR TABLE, which appeared
  88.  * in Sun-2 and Sun-3 firmware, follows the TRAP TABLE.  Finally, the TRAP 
  89.  * VECTOR TABLE follows the VECTOR TABLE.  Each TRAP VECTOR TABLE entry 
  90.  * contains the address of the trap handler, which is eventually called to 
  91.  * handle the trap condition.
  92.  *
  93.  * These tables are the ONLY knowledge the outside world has of this rom.
  94.  * They are referenced by hardware and software.  Once located, NO ENTRY CAN
  95.  * BE ADDED, DELETED or RE-LOCATED UNLESS YOU CHANGE THE ENTIRE WORLD THAT
  96.  * DEPENDS ON IT!  Notice that, for Sun-4, EACH ENTRY IN STRUCTURE "sunromvec"
  97.  * MUST HAVE A CORRESPONDING ENTRY IN VECTOR TABLE "vector_table", which 
  98.  * resides in file "../sun4/traptable.s".
  99.  * 
  100.  * The easiest way to reference elements of these TABLEs is to say:
  101.  *      *romp->xxx
  102.  * as in:
  103.  *      (*romp->v_putchar)(c);
  104.  *
  105.  * Various entries have been added at various times.  As of the Rev N, the
  106.  * VECTOR TABLE includes an entry "v_romvec_version" which is an integer 
  107.  * defining which entries in the table are valid.  The "V1:" type comments 
  108.  * on each entry state which version the entry first appeared in.  In order
  109.  * to determine if the Monitor your program is running under contains the 
  110.  * entry, you can simply compare the value of "v_romvec_version" to the 
  111.  * constant in the comment field.  For example,
  112.  *      if (romp->v_romvec_version >= 1) {
  113.  *        reference *romp->v_memorybitmap...
  114.  *      } else {
  115.  *        running under older version of the Monitor...
  116.  *      }
  117.  * Entries which do not contain a "Vn:" comment are in all versions.
  118.  */
  119. struct sunromvec {
  120.   char               *v_initsp;        /* Initial Stack Pointer for hardware.*/
  121.   void               (*v_startmon)();  /* Initial PC for hardware.           */
  122.   int                *v_diagberr;      /* Bus error handler for diagnostics. */
  123.   /* 
  124.    * Configuration information passed to standalone code and UNIX. 
  125.    */
  126.   struct   bootparam **v_bootparam;    /* Information for boot-strapped pgm. */
  127.   unsigned int       *v_memorysize;    /* Total physical memory in bytes.    */
  128.   /* 
  129.    * Single character input and output.
  130.    */
  131.   unsigned char      (*v_getchar)();   /* Get a character from input source. */
  132.   void               (*v_putchar)();   /* Put a character to output sink.    */
  133.   int                (*v_mayget)();    /* Maybe get a character, or "-1".    */
  134.   int                (*v_mayput)();    /* Maybe put a character, or "-1".    */
  135.   unsigned char      *v_echo;          /* Should "getchar" echo input?       */
  136.   unsigned char      *v_insource;      /* Current source of input.           */
  137.   unsigned char      *v_outsink;       /* Currrent output sink.              */
  138.   /* 
  139.    * Keyboard input and frame buffer output.
  140.    */
  141.   int                (*v_getkey)();    /* Get next key if one is available.  */
  142.   void               (*v_initgetkey)();/* Initialization for "getkey".       */
  143.   unsigned int       *v_translation;   /* Keyboard translation selector.     */
  144.   unsigned char      *v_keybid;        /* Keyboard ID byte.                  */
  145.   int                *v_screen_x;      /* V2: Screen x pos (R/O).            */
  146.   int                *v_screen_y;      /* V2: Screen y pos (R/O).            */
  147.   struct keybuf      *v_keybuf;        /* Up/down keycode buffer.            */
  148.  
  149.   char               *v_mon_id;        /* Revision level of the monitor.     */
  150.   /* 
  151.    * Frame buffer output and terminal emulation.
  152.    */
  153.   void               (*v_fwritechar)();/* Write a character to frame buffer. */
  154.   int                *v_fbaddr;        /* Address of frame buffer.           */
  155.   char               **v_font;         /* Font table for frame buffer.       */
  156.   void               (*v_fwritestr)(); /* Quickly write a string to frame    *
  157.                                         * buffer.                            */
  158.   /* 
  159.    * Re-boot interface routine.  Resets and re-boots system.  No return. 
  160.    */
  161.   void               (*v_boot_me)();   /* For example, boot_me("xy()vmunix").*/
  162.   /* 
  163.    * Command line input and parsing.
  164.    */
  165.   unsigned char      *v_linebuf;       /* The command line buffer.           */
  166.   unsigned char      **v_lineptr;      /* Current pointer into "linebuf".    */
  167.   int                *v_linesize;      /* Length of current command line.    */
  168.   void               (*v_getline)();   /* Get a command line from user.      */
  169.   unsigned char      (*v_getone)();    /* Get next character from "linebuf". */
  170.   unsigned char      (*v_peekchar)();  /* Peek at next character without     *
  171.                                         * advancing pointer.                 */
  172.   int                *v_fbthere;       /* Is there a frame buffer or not?    *
  173.                                         * 1=yes.                             */
  174.   int                (*v_getnum)();    /* Grab hex number from command line. */
  175.   /* 
  176.    * Phrase output to current output sink.
  177.    */
  178.   int                (*v_printf)();    /* Similar to Kernel's "printf".      */
  179.   void               (*v_printhex)();  /* Format N digits in hexadecimal.    */
  180.  
  181.   unsigned char      *v_leds;          /* RAM copy of LED register value.    */
  182.   void               (*v_set_leds)();  /* Sets LEDs and RAM copy             */
  183.   /* 
  184.    * The nmi related information. 
  185.    */
  186.   void               (*v_nmi)();       /* Address for the Sun-4 level 14     *
  187.                                         * interrupt vector.                  */
  188.   void               (*v_abortent)();  /* Entry for keyboard abort.          */
  189.   int                *v_nmiclock;      /* Counts in milliseconds.            */
  190.  
  191.   int                *v_fbtype;        /* Frame buffer type: see <sun/fbio.h>*/
  192.   /* 
  193.    * Assorted other things.
  194.    */
  195.   unsigned int       v_romvec_version; /* Version number of "romvec".        */
  196.   struct   globram   *v_gp;            /* Monitor's global variables.        */
  197.   struct zscc_device *v_keybzscc;      /* Address of keyboard in use.        */
  198.   int                *v_keyrinit;      /* Millisecs before keyboard repeat.  */
  199.   unsigned char      *v_keyrtick;      /* Millisecs between repetitions.     */
  200.   unsigned int       *v_memoryavail;   /* V1: Size of usable main memory.    */
  201.   long               *v_resetaddr;     /* where to jump on a RESET trap.     */
  202.   long               *v_resetmap;      /* Page map entry for "resetaddr".    */
  203.   void               (*v_exit_to_mon)();/* Exit from user program.           */
  204.   unsigned char      **v_memorybitmap; /* V1: Bit map of main memory or NULL.*/
  205. #ifndef sun3x
  206.   void               (*v_setcxsegmap)();/* Set segment in any context.       */
  207. #endif sun3x
  208.   void               (**v_vector_cmd)();/* V2: Handler for the 'w' (vector)  *
  209.                                         * command.                           */
  210. #if defined(sun4) || defined(sun4c)
  211.   unsigned long      *v_exp_trap_signal;/* V3: Location of the expected trap *
  212.                                         * signal.  Was trap expected or not? */
  213.   unsigned long      *v_trap_vector_table_base; /* V3: Address of the TRAP   *
  214.                                         * VECTOR TABLE which exists in RAM.  */
  215. #endif sun4 || sun4c
  216. #ifdef sun4c
  217.   struct physmemory  *v_physmemory;    /* ptr to memory list */
  218.   unsigned int       *v_monmemory;    /* memory taken by monitor */
  219.   struct config_ops  *v_config_ops;    /* configuration operations */
  220. #endif sun4c
  221.  
  222. #ifdef sun3x
  223.   int                **v_lomemptaddr;    /* address of low memory ptes      */
  224.   int                **v_monptaddr;      /* address of debug/mon ptes       */
  225.   int                **v_dvmaptaddr;     /* address of dvma ptes            */
  226.   int                 **v_monptphysaddr;  /* Physical Addr of the KADB PTE's */
  227.   int                **v_shadowpteaddr;  /* addr of shadow cp of DVMA pte's */
  228.   struct physmemory  *v_physmemory;      /* Ptr to memory list for Hydra    */
  229. #endif sun3x
  230.   int                dummy1z;
  231.   int                dummy2z;
  232.   int                dummy3z;
  233.   int                dummy4z;
  234. };
  235.  
  236. /*
  237.  * THE FOLLOWING CONSTANT, "romp" MUST BE CHANGED ANYTIME THE VALUE OF 
  238.  * "PROM_BASE" IN file "../sun2/cpu.addrs.h" (for Sun-2), file 
  239.  * "../sun3/cpu.addrs.h" (for Sun-3) or file "../sun4/cpu.addrs.h" (for Sun-4)
  240.  * IS CHANGED.  IT IS CONSTANT HERE SO THAT EVERY MODULE WHICH NEEDS AN ADDRESS
  241.  * OUT OF STRUCTURE "sunromvec" DOES NOT HAVE TO INCLUDE the appropriate
  242.  * "cpu.addrs.h" file.
  243.  *
  244.  * Since Sun-4 supports 32-bit addressing, rather than 28-bit addressing as is
  245.  * supported by Sun-3, the value of "romp" had to be increased.  Furthermore, 
  246.  * since the VECTOR TABLE, which appeared at the beginning of Sun-3 firmware,
  247.  * now appears after the 4K-byte TRAP TABLE in Sun-4 firmware, the value of
  248.  * "romp" was incresed by an additional 4K.
  249.  *
  250.  * If the value of "romp" is changed, several other changes are required.
  251.  * A complete list of required changes is given below.
  252.  *    (1) Makefile:             RELOC=
  253.  *    (2) ../sun2/cpu.addrs.h:  #define PROM_BASE (for Sun-2)
  254.  * or
  255.  *    (2) ../sun3/cpu.addrs.h:  #define PROM_BASE (for Sun-3)
  256.  * or
  257.  *    (2) ../sun3x/cpu.addrs.h:  #define PROM_BASE (for Sun-3x)
  258.  * or
  259.  *    (2) ../sun4/cpu.addrs.h:  #define PROM_BASE (for Sun-4)
  260.  *
  261.  */
  262. #ifdef sun4c
  263. extern struct sunromvec *romp;
  264. #else sun4c
  265. #ifdef sun4
  266. #define romp ((struct sunromvec *) 0xFFE81000) /* Used when running the  *
  267.                                                 * firmware out of ROM.   */
  268. #else sun4
  269. /*
  270.  * Notce that the value of "romp" will be 
  271.  * truncated based on the running hardware:
  272.  *   Sun-2   0x00EF0000
  273.  *   Sun-3   0x0FEF0000
  274.  *   Sun-3x  0xFEFE00000
  275.  * This was deliberately done for Sun-3 so that programs using this header
  276.  * file (with the Sun-3 support) would continue to run on Sun-2 systems.
  277.  */
  278. #ifdef sun3x
  279. #define romp ((struct sunromvec *) 0xFEFE0000)    /* Pegasus romp-> */
  280. #else sun3x
  281. #define romp ((struct sunromvec *) 0x0FEF0000)
  282. #endif sun3x
  283. #endif sun4 
  284. #endif sun4c
  285. #endif OPENPROMS
  286.  
  287. /*
  288.  * The possible values for "*romp->v_insource" and "*romp->v_outsink" are 
  289.  * listed below.  These may be extended in the future.  Your program should
  290.  * cope with this gracefully (e.g. by continuing to vector through the ROM
  291.  * I/O routines if these are set in a way you don't understand).
  292.  */
  293. #define INKEYB    0 /* Input from parallel keyboard. */
  294. #define INUARTA   1 /* Input or output to Uart A.    */
  295. #define INUARTB   2 /* Input or output to Uart B.    */
  296. #define INUARTC   3 /* Input or output to Uart C.    */
  297. #define INUARTD   4 /* Input or output to Uart D.    */
  298. #define OUTSCREEN 0 /* Output to frame buffer.       */
  299. #define OUTUARTA  1 /* Input or output to Uart A.    */
  300. #define OUTUARTB  2 /* Input or output to Uart B.    */
  301. #define OUTUARTC  3 /* Input or output to Uart C.    */
  302. #define OUTUARTD  4 /* Input or output to Uart D.    */
  303.  
  304. /*
  305.  * Structure set up by the boot command to pass arguments to the booted program.
  306.  */
  307. struct bootparam {
  308.   char            *bp_argv[8];     /* String arguments.                     */
  309.   char            bp_strings[100]; /* String table for string arguments.    */
  310.   char            bp_dev[2];       /* Device name.                          */
  311.   int             bp_ctlr;         /* Controller Number.                    */
  312.   int             bp_unit;         /* Unit Number.                          */
  313.   int             bp_part;         /* Partition/file Number.                */
  314.   char            *bp_name;        /* File name.  Points into "bp_strings". */
  315.   struct boottab  *bp_boottab;     /* Points to table entry for device.     */
  316. };
  317.  
  318. /*
  319.  * This table entry describes a device.  It exists in the PROM.  A pointer to
  320.  * it is passed in "bootparam".  It can be used to locate ROM subroutines for 
  321.  * opening, reading, and writing the device.  NOTE: When using this interface, 
  322.  * only ONE device can be open at any given time.  In other words, it is not
  323.  * possible to open a tape and a disk at the same time.
  324.  */
  325. struct boottab {
  326.   char           b_dev[2];        /* Two character device name.          */
  327.   int            (*b_probe)();    /* probe(): "-1" or controller number. */
  328.   int            (*b_boot)();     /* boot(bp): "-1" or start address.    */
  329.   int            (*b_open)();     /* open(iobp): "-"1 or "0".            */
  330.   int            (*b_close)();    /* close(iobp): "-"1 or "0".           */
  331.   int            (*b_strategy)(); /* strategy(iobp, rw): "-1" or "0".    */
  332.   char           *b_desc;         /* Printable string describing device. */
  333.   struct devinfo *b_devinfo;      /* Information to configure device.    */
  334. };
  335.  
  336. enum MAPTYPES { /* Page map entry types. */
  337.   MAP_MAINMEM, 
  338.   MAP_OBIO, 
  339.   MAP_MBMEM, 
  340.   MAP_MBIO,
  341.   MAP_VME16A16D, 
  342.   MAP_VME16A32D,
  343.   MAP_VME24A16D, 
  344.   MAP_VME24A32D,
  345.   MAP_VME32A16D, 
  346.   MAP_VME32A32D
  347. };
  348.  
  349. /*
  350.  * This table gives information about the resources needed by a device.  
  351.  */
  352. struct devinfo {
  353.   unsigned int      d_devbytes;   /* Bytes occupied by device in IO space.  */
  354.   unsigned int      d_dmabytes;   /* Bytes needed by device in DMA memory.  */
  355.   unsigned int      d_localbytes; /* Bytes needed by device for local info. */
  356.   unsigned int      d_stdcount;   /* How many standard addresses.           */
  357.   unsigned long     *d_stdaddrs;  /* The vector of standard addresses.      */
  358.   enum     MAPTYPES d_devtype;    /* What map space device is in.           */
  359.   unsigned int      d_maxiobytes; /* Size to break big I/O's into.          */
  360. };
  361.  
  362. /*
  363.  * This following defines the memory map interface
  364.  * between the ROM Monitor and the Unix kernel.
  365.  *
  366.  * The ROM Monitor requires that nobody mess with parts of virtual memory if 
  367.  * they expect any ROM Monitor services.  The following rules apply to all of
  368.  * the virtual addresses between MONSTART and MONEND.
  369.  *   (1) Do not write to these addresses.
  370.  *   (2) Do not read from (depend on the contents of) these addresses, except
  371.  *       as documented here or in <mon/sunromvec.h>.
  372.  *   (3) Do not re-map these addresses.
  373.  *   (4) Do not change or double-map the pmegs that these addresses map through.
  374.  *   (5) Do not change or double-map the main memory that these addresses map 
  375.  *       to.
  376.  *   (6) You are free to change or double-map I/O devices which these addresses
  377.  *       map to.
  378.  *   (7) These rules apply in all map contexts.
  379.  */
  380. #ifndef    OPENPROMS
  381. #ifdef sun2 
  382. #define MONSTART 0x00E00000
  383. #define MONEND   0x00F00000
  384. #endif sun2
  385.  
  386. #ifdef sun3 
  387. #define MONSTART 0x0FE00000
  388. #define MONEND   0x0FF00000
  389. #endif sun3 
  390.  
  391. #ifdef sun3x
  392. #define MONSTART 0xFEF00000
  393. #define MONEND   0xFF000000
  394. #endif sun3x
  395.  
  396. #if defined(sun4) || defined(sun4c)
  397. #define MONSTART 0xFFD00000
  398. #define MONEND   0xFFF00000
  399. #endif sun4 || sun4c
  400. #endif    OPENPROMS
  401.  
  402. #if !defined(sun4) && !defined(sun4c)
  403. /*
  404.  * The one page at MONSHORTPAGE must remain mapped to the same piece
  405.  * of main memory.  The pmeg used to map it there can be changed if so
  406.  * desired.  This page should not be read from or written in.  It is
  407.  * used for ROM Monitor globals, since it is addressable with short
  408.  * absolute instructions.  (We give a 32-bit value below so the
  409.  * compiler/assembler will use absolute short addressing.  The hardware
  410.  * will accept either 0 or 0xF as the top 4 bits.)
  411.  */
  412. #define MONSHORTPAGE 0xFFFFE000
  413. #define MONSHORTSEG  0xFFFE0000
  414. #endif !sun4 && !sun4c
  415.  
  416. #if defined(sun4) || defined(sun4c)
  417. /*
  418.  * The one page at GLOBAL_PAGE must remain mapped to the same piece of main 
  419.  * memory.  The pmeg used to map it there can be changed if desired.  This page
  420.  * should not be read from or written into.  It is used for Monitor globals.
  421.  */
  422. #define GLOBAL_PAGE 0xFFEFE000
  423. #endif sun4 
  424. #ifdef sun3x
  425. #define GLOBAL_PAGE 0xFEF72000
  426. #endif sun3x
  427.  
  428. /*
  429.  * For virtual addresses outside the above range, you can re-map the addresses 
  430.  * as desired (but see MONSHORTPAGE).  Any pmeg not referenced by segments 
  431.  * between MONSTART and MONEND can be used freely (but see MONSHORTPAGE).  
  432.  * When a stand-alone program is booted, available main memory will be mapped
  433.  * contiguously, using ascending physical page addresses, starting at virtual
  434.  * address "0x00000000".  The complete set of available memory  may not be  
  435.  * mapped due to a lack of pmegs.  The complete set is defined by globals 
  436.  * "v_memorysize", "v_memoryavail" and "v_memorybitmap".  For non-Sun-4
  437.  * machines, we guarantee that at least MAINMEM_MAP_SIZE page map entries
  438.  * will be available for mapping starting from location "0x0".  For Sun-4, 
  439.  * (at least at the time of Sunrise and Cobra), we guarantee that at least
  440.  * 4 megabytes will be mapped beginning with location "0x0".  When a 
  441.  * stand-alone program is booted, the number of segment table entries required
  442.  * to map DVMA_MAP_SIZE bytes will be allocated.  The corresponding pages will 
  443.  * be mapped into DVMA space.
  444.  */
  445. #ifdef sun2 
  446. #define MAINMEM_MAP_SIZE 0x00600000
  447. #define DVMA_MAP_SIZE    0x00080000
  448. #endif sun2 
  449.  
  450. #ifdef sun3 
  451. #define MAINMEM_MAP_SIZE 0x00800000
  452. #define DVMA_MAP_SIZE    0x00080000
  453. #endif sun3 
  454.  
  455. #ifdef sun3x
  456. #define MAINMEM_MAP_SIZE 0x00800000    /* Eight Megabytes */
  457. #define DVMA_MAP_SIZE    0x00100000    /* One Megabyte */
  458. #endif
  459.  
  460. #if defined(sun4) && !defined(sun4c)
  461. #ifdef sunray
  462. #define MAINMEM_MAP_SIZE 0x02000000
  463. #else sunray
  464. #define MAINMEM_MAP_SIZE 0x00800000
  465. #endif sunray
  466. #define DVMA_MAP_SIZE    0x00080000
  467. #endif
  468.  
  469. #ifdef sun4c
  470. #define MAINMEM_MAP_SIZE 0x00400000
  471. #define DVMA_MAP_SIZE    0x00080000
  472. #endif
  473.  
  474. /*
  475.  * The following are included for compatability with previous versions
  476.  * of this header file.  Names containing capital letters have been
  477.  * changed to conform with "Bill Joy Normal Form".  This section provides
  478.  * the translation between the old and new names.  It can go away once
  479.  * Sun-1 applications have been converted over.
  480.  */
  481. #define RomVecPtr       romp
  482. #define v_SunRev        v_mon_id
  483. #define v_MemorySize    v_memorysize
  484. #define v_EchoOn        v_echo
  485. #define v_InSource      v_insource
  486. #define v_OutSink       v_outsink
  487. #define v_InitGetkey    v_initgetkey
  488. #define v_KeybId        v_keybid
  489. #define v_Keybuf        v_keybuf
  490. #define v_FBAddr        v_fbaddr
  491. #define v_FontTable     v_font
  492. #define v_message       v_printf
  493. #define v_KeyFrsh       v_nmi
  494. #define AbortEnt        v_abortent
  495. #define v_RefrCnt       v_nmiclock
  496. #define v_GlobPtr       v_gp
  497. #define v_KRptInitial   v_keyrinit
  498. #define v_KRptTick      v_keyrtick
  499. #define v_ExitOp        v_exit_to_mon
  500. #define v_fwrstr        v_fwritestr
  501. #define v_linbuf        v_linebuf
  502.  
  503. #endif /*!_mon_sunromvec_h*/
  504. @
  505.  
  506.  
  507. 1.1
  508. log
  509. @Initial revision
  510. @
  511. text
  512. @d430 1
  513. a430 1
  514. #ifdef sun4
  515. @
  516.